package ejb.cbm.operatoria.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="OPERACIONCHEQUE")
public class OperacionChequeEntity  implements java.io.Serializable {

    // Fields    
     private Long codigooperacion;
     private Long codigoCajaBoveda;
     private Long codigoTransaccion;
     private String numerocuenta;
     private String codigodivisa;
     private Double importetotal;
     private String usuarioautorizacion;
     private Long codigomotivoautorizacion;
     private String observacionautorizacion;
     private Long estadoimpresion;
     private Long flagextorno;
     private String usuarioregistro;
     private Date fecharegistro;
     private String usuariomodificacion;
     private Date fechamodificacion;
     private List<ChequeEntity> cheques = new ArrayList<ChequeEntity>(0);

    // Constructors

    /** default constructor */
    public OperacionChequeEntity() {
    }

	/** minimal constructor */
    public OperacionChequeEntity(Long codigooperacion, Long codigoCajaBoveda, Long codigoTransaccion, String numerocuenta, String codigodivisa, Double importetotal, Long estadoimpresion, Long flagextorno, String usuarioregistro, Date fecharegistro, String usuariomodificacion, Date fechamodificacion) {
        this.codigooperacion = codigooperacion;
        this.codigoCajaBoveda = codigoCajaBoveda;
        this.codigoTransaccion = codigoTransaccion;
        this.numerocuenta = numerocuenta;
        this.codigodivisa = codigodivisa;
        this.importetotal = importetotal;
        this.estadoimpresion = estadoimpresion;
        this.flagextorno = flagextorno;
        this.usuarioregistro = usuarioregistro;
        this.fecharegistro = fecharegistro;
        this.usuariomodificacion = usuariomodificacion;
        this.fechamodificacion = fechamodificacion;
    }
    
    /** full constructor */
    public OperacionChequeEntity(Long codigooperacion, Long codigoCajaBoveda, Long codigoTransaccion, String numerocuenta, String codigodivisa, Double importetotal, String usuarioautorizacion, Long codigomotivoautorizacion, String observacionautorizacion, Long estadoimpresion, Long flagextorno, String usuarioregistro, Date fecharegistro, String usuariomodificacion, Date fechamodificacion, List<ChequeEntity> cheques) {
        this.codigooperacion = codigooperacion;
        this.codigoCajaBoveda = codigoCajaBoveda;
        this.codigoTransaccion = codigoTransaccion;
        this.numerocuenta = numerocuenta;
        this.codigodivisa = codigodivisa;
        this.importetotal = importetotal;
        this.usuarioautorizacion = usuarioautorizacion;
        this.codigomotivoautorizacion = codigomotivoautorizacion;
        this.observacionautorizacion = observacionautorizacion;
        this.estadoimpresion = estadoimpresion;
        this.flagextorno = flagextorno;
        this.usuarioregistro = usuarioregistro;
        this.fecharegistro = fecharegistro;
        this.usuariomodificacion = usuariomodificacion;
        this.fechamodificacion = fechamodificacion;
        this.cheques = cheques;
    }

   
    // Property accessors
    @Id
    @Column(name="CODIGOOPERACION", unique=true, nullable=false, insertable=true, updatable=true, precision=8, scale=0)
    public Long getCodigooperacion() {
        return this.codigooperacion;
    }
    
    public void setCodigooperacion(Long codigooperacion) {
        this.codigooperacion = codigooperacion;
    }
    
    @Column(name="CODIGOCAJABOVEDA", unique=false, nullable=true, insertable=true, updatable=true, precision=8, scale=0)
    public Long getCodigoCajaBoveda() {
		return codigoCajaBoveda;
	}

	public void setCodigoCajaBoveda(Long codigoCajaBoveda) {
		this.codigoCajaBoveda = codigoCajaBoveda;
	}
	@Column(name="CODIGOTRANSACCION", unique=false, nullable=true, insertable=true, updatable=true, precision=8, scale=0)
	public Long getCodigoTransaccion() {
		return codigoTransaccion;
	}

	public void setCodigoTransaccion(Long codigoTransaccion) {
		this.codigoTransaccion = codigoTransaccion;
	}

	@Column(name="NUMEROCUENTA", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getNumerocuenta() {
        return this.numerocuenta;
    }
    
    public void setNumerocuenta(String numerocuenta) {
        this.numerocuenta = numerocuenta;
    }
    
    @Column(name="CODIGODIVISA", unique=false, nullable=false, insertable=true, updatable=true, length=3)
    public String getCodigodivisa() {
        return this.codigodivisa;
    }
    
    public void setCodigodivisa(String codigodivisa) {
        this.codigodivisa = codigodivisa;
    }
    
    @Column(name="IMPORTETOTAL", unique=false, nullable=false, insertable=true, updatable=true, precision=14, scale=4)
    public Double getImportetotal() {
        return this.importetotal;
    }
    
    public void setImportetotal(Double importetotal) {
        this.importetotal = importetotal;
    }
    
    @Column(name="USUARIOAUTORIZACION", unique=false, nullable=true, insertable=true, updatable=true, length=8)
    public String getUsuarioautorizacion() {
        return this.usuarioautorizacion;
    }
    
    public void setUsuarioautorizacion(String usuarioautorizacion) {
        this.usuarioautorizacion = usuarioautorizacion;
    }
    
    @Column(name="CODIGOMOTIVOAUTORIZACION", unique=false, nullable=true, insertable=true, updatable=true, precision=2, scale=0)
    public Long getCodigomotivoautorizacion() {
        return this.codigomotivoautorizacion;
    }
    
    public void setCodigomotivoautorizacion(Long codigomotivoautorizacion) {
        this.codigomotivoautorizacion = codigomotivoautorizacion;
    }
    
    @Column(name="OBSERVACIONAUTORIZACION", unique=false, nullable=true, insertable=true, updatable=true, length=50)
    public String getObservacionautorizacion() {
        return this.observacionautorizacion;
    }
    
    public void setObservacionautorizacion(String observacionautorizacion) {
        this.observacionautorizacion = observacionautorizacion;
    }
    
    @Column(name="ESTADOIMPRESION", unique=false, nullable=false, insertable=true, updatable=true, precision=1, scale=0)
    public Long getEstadoimpresion() {
        return this.estadoimpresion;
    }
    
    public void setEstadoimpresion(Long estadoimpresion) {
        this.estadoimpresion = estadoimpresion;
    }
    
    @Column(name="FLAGEXTORNO", unique=false, nullable=false, insertable=true, updatable=true, precision=1, scale=0)
    public Long getFlagextorno() {
        return this.flagextorno;
    }
    
    public void setFlagextorno(Long flagextorno) {
        this.flagextorno = flagextorno;
    }
    
    @Column(name="USUARIOREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getUsuarioregistro() {
        return this.usuarioregistro;
    }
    
    public void setUsuarioregistro(String usuarioregistro) {
        this.usuarioregistro = usuarioregistro;
    }
    @Temporal(TemporalType.DATE)
    @Column(name="FECHAREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, length=7)
    public Date getFecharegistro() {
        return this.fecharegistro;
    }
    
    public void setFecharegistro(Date fecharegistro) {
        this.fecharegistro = fecharegistro;
    }
    
    @Column(name="USUARIOMODIFICACION", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getUsuariomodificacion() {
        return this.usuariomodificacion;
    }
    
    public void setUsuariomodificacion(String usuariomodificacion) {
        this.usuariomodificacion = usuariomodificacion;
    }
    @Temporal(TemporalType.DATE)
    @Column(name="FECHAMODIFICACION", unique=false, nullable=false, insertable=true, updatable=true, length=7)
    public Date getFechamodificacion() {
        return this.fechamodificacion;
    }
    
    public void setFechamodificacion(Date fechamodificacion) {
        this.fechamodificacion = fechamodificacion;
    }
    @OneToMany(cascade={CascadeType.ALL}, fetch=FetchType.LAZY, mappedBy="operacioncheque")
    public List<ChequeEntity> getCheques() {
        return this.cheques;
    }
    
    public void setCheques(List<ChequeEntity> cheques) {
        this.cheques = cheques;
    }
}